import {userInfo} from '@/apis/personal';

export default {
    // 设置命名空间，方便日后维护可按模块查找排错等
    namespaced: true,
    state: {
        token: '',
        // 用户基本信息
        userInfo: {}
    },
    getters: {
        // 根据 state 中的 token 状态或者本地存储中的 pm_token 值，如果其中任一值存在，则认为用户已登录，并返回布尔值。
        isLogin(state) {
            return !!state.token || !!localStorage.getItem('pm_token');
        }
    },
    mutations: {
        // 设置token值(setToken)
        setToken(state, token) {
            localStorage.setItem('pm_token', token);
            state.token = token;
        },
        // 清除token值(clearToken)
        clearToken(state) {
            state.token = ''
            localStorage.removeItem('pm_token');
        },
        // 设置用户信息
        // 设置 userInfo 状态的同时，将 username 存储到本地存储中
        setUserInfo(state, info) {
            state.userInfo = info || {};
            localStorage.setItem('username', state.userInfo.username);
        },
        // 清除state中存储的用户基本信息
        clearUserInfo(state) {
            state.userInfo = {};
        }
    },
    actions: {
        // 刷新state中数据，获取用户信息
        refreshInfo({commit}) {
            userInfo().then(res => {
                commit('setUserInfo', res.data)
            })
        }
    }
};
